Floating Object

浮体运动

刚性浮体也属于实粒子,使用额外的数据容器,存储浮体粒子集合,在建立 NNPS 数据结构时进行映射,在更新粒子运动时, 将同一集合的粒子进行统一更新。

浮体整体受力

浮体受力是由浮体内部粒子受力之和,单个浮体粒子受到交互的流体粒子排斥力和重力:

fk=aWPsfka

其中,fk 为单个浮体粒子受力,fka 为每个交互的流体粒子提供给浮体粒子的受力。

受力满足动量守恒:

mkfka=mafak

所有浮体粒子受力,引发浮体整体发生加速度:

MdVdt=kRPsmkfk

MdΩdt=kRPsmk(rkR0)×fk

其中,M 为浮体质量,V 为浮体速度,Ω 为浮体角速度,R0 为浮体质心位置。

浮体粒子

浮体粒子的速度可由浮体的整体速度得到:

uk=V+Ω×(rkR0)

参考文献

  1. SPHyisics.
  2. Rogers B D, Dalrymple R A, Stansby P K. SPH modeling of floating bodies in the surf zone[M]//Coastal Engineering 2008: (In 5 Volumes). 2009: 204-215.